package com.eling.elcms.travel.dao;

import com.eling.elcms.core.dao.IGenericDao;
import com.eling.elcms.core.dao.hibernate.search.SearchCondition;
import com.eling.elcms.member.model.Member;
import com.eling.elcms.travel.model.TravelContract;
import com.eling.elcms.travel.model.view.ContractStatView;
import com.eling.elcms.travel.model.view.TravelContractView;
import com.eling.elcms.travel.model.view.contractGridValid;

import java.util.Date;
import java.util.List;

public interface ITravelContractDao extends IGenericDao<TravelContract, Long>{

	/**
	 * 查询签约数量
	 * 
	 * @author ZhaoYuJing
	 * @param signUpDateEnd 
	 * @param signUpDate 
	 * @return
	 */
	List<ContractStatView> conutValid(Date signUpDate, Date signUpDateEnd);
	/**
	 * 查詢签约客户
	 * @param pkProduct
	 * @param pkProductType
	 * @param signUpDateEnd 
	 * @param signUpDate 
	 * @return
	 */
	List<contractGridValid> contractValid(Long pkProduct, Long pkProductType, Date signUpDate, Date signUpDateEnd);
	
	
	Integer queryOccupied(Long pkTravelContract);
	
	List<Object> pageQueryByPoint(Member cond, Long pkCommunityData,
			Long pkServicePoint, Long pkInterest, Integer firstResult,
			Integer maxResults, Boolean queryCount, String pkOrg,Boolean exitMember);
	
	List<Object> searchMemPagingWithCard(SearchCondition sc, Member cond, Long pkCommunityData, Long pkServicePoint,
			Long pkInterest, Integer firstResult, Integer maxResults, Boolean queryCount, String pkOrg,
			Boolean exitMember);
	
	List<Long> queryMemPk();
	
	List<Member> queryMember(String strCond);
	
	TravelContractView searchByMemberCertificates(String memberCertificates);
}
